#!/bin/zsh

## Gera.sh - Gera cabeçalho para scripts
## Escrito por: Sandro Marcell P. Barbosa (Boa Vista - Roraima)
## E-mail: sandro_marcell@yahoo.com.br
## Slackware GNU/Linux 10.1.0

# Exemplo de uso: nome_script meu_script
# Você também pode especificar a extensão, conforme o interpretador.
# Ex.: nome_script backup.sh para o interpretador 'sh'
# ou nome_script backup.tcl para o interpretador 'tcl' e assim por diante!

# Definindo o interpretador padrão (substitua por outro se quiser!):
INTERPRETADOR="#!/bin/sh"

# Conteúdo do cabeçalho (altere conforme queira!):
INFO="## <Nome e descrição do script>"
CRIADOR="## Escrito por: <seu nome>"
EMAIL="## E-mail: <substitua pelo seu e-mail>"
DISTRO="## <Substitua por sua distro e a versão>"

# Modificando a saída do comando 'print':
Print () { print '\e[1m'"\n$*\n" ; tput sgr0 ; }

# Checando se o usuário especificou o nome do script:
if [[ $# -eq 0 ]] {
   Print ">>> Uso: $(basename $0) <nome_do_script>"
   bye   
} 
elif [[ $# -ge 2 ]] {
    Print "> Nome com espaços não são válidos!"
    bye
}

# O usuário pode gravar no diretório corrente?
if [[ ! -w $PWD ]] {
       Print "> Sem permissão para gravar no diretório corrente!"
       bye
}
# E se existir outro script com o mesmo nome no diretório corrente?
if [[ -f $1 ]] {
     Print "> Já existe um script com o mesmo nome neste diretório!"
     bye
}
# Corpo do script:
(
cat << FIM
$INTERPRETADOR
$INFO
$CRIADOR
$EMAIL
$DISTRO
# Agora basta adicionar comandos nas linhas subseqüentes =)
## Data de criação deste script: $(date "+%a %d/%m/%Y") às $(date "+%T")
FIM
) > $1
# Setando a permissão de execução:
if [[ -f $1 ]] {
   chmod +x $1 2> /dev/stdout
   Print "Script [$1] criado e com permissão de execução!"
} else {
  :
}
 bye
## Data de criação deste script: Ter 24/04/2007 às 21:05:09
